#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#define SOUND_BACKGROUND ":/PVZ/images/55--Graze the Roof.wav"
#include <QMainWindow>
#include<QLabel>
#include<QTimer>
#include <QMouseEvent>
#include <QKeyEvent>
#include"bullet.h"
#include"plant.h"
#include"zombie.h"
#include"kill.h"
#include"map.h"

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
        //加载初始化场景
        void initScene();
        //重写paintEvent事件，绘制图像
        void paintEvent(QPaintEvent*);
        //启动游戏
        void gamestart();

        QLabel* label_sun = new QLabel(this);
        //子弹定时器
        QTimer m_Timer;
        //僵尸移动计时器
        QTimer zom_Timer;
        map m_map;
        //碰撞检测计时器
        QTimer bullet_Timer;
        void show_sun_sum();//显示太阳的数量
        //QTimer* mytimer = new QTimer(this);//用来操作子弹以及僵尸的移动;
        //更新所有元素的坐标
        void updatePosition();

        //测试子弹对象
        //Bullet temp_Bullet;
        //测试植物对象
        void mouseMoveEvent(QMouseEvent* event_1);
        //重写键盘事件
        //void keyPressEvent(QKeyEvent *event);
        //void keyReleaseEvent(QKeyEvent *enent);
        //植物对象
        plant temp_plant;
        //僵尸出场
        void enemyToScene();
        //僵尸数组
        zombie m_enemys[ENEMY_NUM];
        //僵尸出场间隔记录
        int m_recorder;
        //碰撞检测
        void collisionDetection();
        //释放近战
        void davidpunch();
        //近战时间记录
        int d_recorder;
        //释放近战动画
        void anime();
        kill m_kill;
        //计分板
        int sum=0;
        void show_sum();
        void defeated();
        int def=0;
    ~MainWindow();
protected:
    virtual void keyPressEvent(QKeyEvent *ev);
    virtual void keyReleaseEvent(QKeyEvent *ev);

private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
